import 'package:flutter/material.dart';

class TextStylePage extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold(
      appBar: AppBar(
        title: new Text("文本及样式"),
      ),
      body: new Column(
        crossAxisAlignment: CrossAxisAlignment.center,
      children: <Widget>[
          Text("hello world",
            /**
             * textAlign：文本的对齐方式；可以选择左对齐、右对齐还是居中。注意，对齐的参考系是Text widget本身。
             * 本例中虽然是指定了居中对齐，但因为Text文本内容宽度不足一行，Text的宽度和文本内容长度相等，
             * 那么这时指定对齐方式是没有意义的，只有Text宽度大于文本内容长度时指定此属性才有意义。
             * 下面我们指定一个较长的字符串：
             */
          textAlign: TextAlign.left,
          ),
        Text("hello world",
          /**
           * textScaleFactor：代表文本相对于当前字体大小的缩放因子，相对于去设置文本的样式style属性的fontSize，
           * 它是调整字体大小的一个快捷方式。该属性的默认值可以通过MediaQueryData.textScaleFactor获得，
           * 如果没有MediaQuery，那么会默认值将为1.0。
           */
          textAlign: TextAlign.left,
          textScaleFactor: 1.5,
        ),
        Text("hello world"*10,
          /**
           * maxLines、overflow：指定文本显示的最大行数，默认情况下，文本是自动折行的，如果指定此参数，
           * 则文本最多不会超过指定的行。如果有多余的文本，可以通过overflow来指定截断方式，默认是直接截断，
           * 本例中指定的截断方式TextOverflow.ellipsis，它会将多余文本截断后以省略符“...”表示；
           */
          maxLines: 1,
          overflow: TextOverflow.ellipsis,
        ),
        Text("hello world",
          /**
           * height：该属性用于指定行高，但它并不是一个绝对值，而是一个因子，具体的行高等于fontSize*height。
           *fontFamily ：由于不同平台默认支持的字体集不同，所以在手动指定字体时一定要先在不同平台测试一下。
           *fontSize：该属性和Text的textScaleFactor都用于控制字体大小。但是有两个主要区别：
           *fontSize可以精确指定字体大小，而textScaleFactor只能通过缩放比例来控制。
           *textScaleFactor主要是用于系统字体大小设置改变时对Flutter应用字体进行全局调整，而fontSize通常用于单个文本，字体大小不会跟随系统字体大小变化。
           */
          style: TextStyle(
            color:Colors.black,
            fontSize: 18.0,
            height: 1.2,
            fontFamily: "Courier",
            background: new Paint()..color=Colors.red,
//            decoration: TextDecoration.underline,
//            decorationStyle: TextDecorationStyle.dashed,

          ),
        ),
        Text.rich(
          TextSpan(
          children: [
            TextSpan(
              text:"home:"),
            TextSpan(
              text:"https://www.ribencun.com",
              style: TextStyle(
                color: Colors.blue
              ),
            )
          ],
        )),
        DefaultTextStyle(style: TextStyle(
          color: Colors.blue,
          fontSize: 20.0,
        ),
          textAlign: TextAlign.start,
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: <Widget>[
              Text("hello world"),
              Text("hello world"),
              Text("hello world",
                style: TextStyle(
                  inherit: false,//不继承默认样式
                  color: Colors.black

                ),
              ),
            ],
          ))
      ],
      ),
    );
  }
}
